/**
  *********************************************************************
  * @file    gui_resource_port.c
  * @version V1.0
  * @date    2018-xx-xx
  * @brief   管理外部资源的接口
  *          例如用来管理外部FLASH中的资源
  *********************************************************************
  * @attention
  * 官网    :www.emXGUI.com
  *
  **********************************************************************
  */ 
  
#include <string.h>
#include "board.h" 
#include	"emXGUI.h"
#include	"emXGUI_Arch.h"
#include "x_libc.h" 
#include "gui_resource_port.h"
#include "gui_mem_port.h"


#if(GUI_RES_FS_EN)

#include "dfs_posix.h"

/**
  * @brief  从文件系统加载内容
  * @param  file_name[in]: 文件路径
  * @param  buf[out]：加载后得到的缓冲区
  * @param  size[out]：内容的大小
  * @note   buf是根据内容的大小动态从VMEM中申请的，
  *         使用完毕buf后，需要调用h文件中的Release_Content函数释放buf的空间
  * @retval FALSE:失败; TRUE:成功
*/
BOOL FS_Load_Content(char *file_name, char** buf, u32* size) 
{	 	
    /* file objects */
    BOOL result = TRUE;
    int fd;
    struct stat status;
  
    /* 打开文件 */		
    fd = open(file_name, O_RDONLY);
    if (fd == -1)
    {      
      GUI_ERROR("Open file failed!");
      return FALSE;
    }    

    fstat(fd, &status);
    *size = status.st_size;

    /* 文件内容空间 */
    *buf = (char *)GUI_VMEM_Alloc(*size);
    if(*buf != NULL)
    {    
      /* 加载整个图片文件 */
      read(fd, *buf, *size);
      /* 关闭文件 */
      close(fd);
    }
    else
      result = FALSE;    
        
    return result;
}
#endif




/********************************END OF FILE****************************/

